﻿/*
* ========================================================================
* 类说明：
*   CAN指令 - 请求参数 - 实体类
* 
* 作者：HGS   时间：2024/11/20 8:38:34
* 
* 修改者：         时间：           
* 修改说明：
* ========================================================================
*/

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ZLGCANoptimize.方法
{
    public struct CanReadRequestModel
    {
        /// <summary>
        /// 通道
        /// </summary>
        public ushort Channel { get; set; }

        /// <summary>
        /// 发送指令前是否先接收一次数据（即清空通道内的旧数据）
        /// </summary>
        public bool IsClearCache { get; set; }

        /// <summary>
        /// 是否解密
        /// </summary>
        public bool IsDecode { get; set; }

        /// <summary>
        /// 解密安全等级
        /// </summary>
        public string DecodeLevel { get; set; }

        /// <summary>
        /// 发送指令列表
        /// </summary>
        public List<CanCmdModel> CmdList { get; set; }

        /// <summary>
        /// 发送指令间隔时间，单位：毫秒
        /// </summary>
        public ushort SendCmdTimeSpan { get; set; }

        /// <summary>
        /// 等待接收指定最大允许等待时间，单位：毫秒，默认值1500
        /// </summary>
        public ushort ReceiveCmdTimeSpan { get; set; }

        /// <summary>
        /// 最大允许发送次数
        /// </summary>
        public ushort MaxSendCount { get; set; }

        /// <summary>
        /// 是否自动解析响应内容
        /// </summary>
        public bool AutoParse { get; set; }

        /// <summary>
        /// 是否验证Did
        /// </summary>
        public bool IsVerifyDid { get; set; }

        /// <summary>
        /// 响应值长度（十进制表示）
        /// </summary>
        public ushort ResponseLength { get; set; }

        /// <summary>
        /// 响应值长度（十六进制表示）
        /// </summary>
        public string ResponseLengthHex { get; set; }

        /// <summary>
        /// CAN指令请求模式
        /// </summary>
        public CanRequestMode RequestMode { get; set; }
    }
    /// <summary>
    /// Can指令实体
    /// </summary>
    public class CanCmdModel
    { 
        /// <summary>
        /// id
        /// </summary>
        public uint Id { get; set; }

        /// <summary>
        /// 指令内容
        /// </summary>
        public string cmd { get; set; }
    }
}
